package com.allwees.bs.module.scm.service;

import com.allwees.bs.module.base.service.BoService;
import com.allwees.bs.module.scm.entity.ScmShippingOrderSku;
import com.allwees.bs.module.scm.req.internal.EnteredWarehouseSkuReq;

import java.util.List;

/**
 * scm 物流发货单
 *
 * @author
 * @since
 */
public interface ScmShippingOrderSkuService extends BoService<ScmShippingOrderSku> {

    /**
     * 查询 skus
     *
     * @return
     */
    List<ScmShippingOrderSku> findOrderSkus(String shippingOrderUuid);

    /**
     * 入仓
     *
     * @return
     */
    ScmShippingOrderSku enteredWarehouse(EnteredWarehouseSkuReq enteredWarehouseSku, String operatorUuid);

    /**
     * 退货
     *
     * @return
     */
    ScmShippingOrderSku refund(String uuid, String reason, String operatorUuid);

    /**
     * 打印
     *
     * @return
     */
    void print(String uuid);

    /**
     * 退货原因
     *
     * @return
     */
    void refundReason(String uuid);

    /**
     * 是否所有已入仓
     * @param orderSkuUuid
     * @return
     */
    boolean allEnterWarehouse(String orderSkuUuid);

    /**
     * 所有已退货
     * @param orderSkuUuid
     * @return
     */
    boolean allRefund(String orderSkuUuid);
}
